package lz.controls.listClasses
{
	
	import lz.controls.core.UIComponent;
	
	/**
     * ListData 是一种信使类，用于保存与基于列表的组件中的特定单元格相关的信息。 
	 * 该信息包括与单元格关联的标签和图标（无论是否选择了单元格），以及单元格在列表中的位置（通过行和列来表示）。
	 * 每当 ListData 组件变为无效时，都会为单元格渲染器创建一个新的 ListData 组件。
	 */
	public class ListData 
	{
        /**
         *  一个表示 List 组件中项目的图标的类，根据 List 类方法计算得出。
		 */
		protected var _icon:Object = null;
        /**
         *  要在单元格中显示的标签。
		 */
		protected var _label:String;
        /**
         *对拥有此项目的 List 对象的引用。
		 */
		protected var _owner:UIComponent;
        /**
         * 数据提供程序中项目的索引。
		 */
		protected var _index:uint;
        /**
         * 数据项目所在的行。
		 */
		protected var _row:uint;
        /**
         * 数据项目所在的列。
		 */
		protected var _column:uint;
		/**
		 * 按照参数的指定创建 ListData 类的新实例。
		 * 参数
		 * label:String — 要在此单元格中显示的标签。
		 * icon:Object — 要在此单元格中显示的图标。
		 * owner:UIComponent — 拥有此单元格的组件。
		 * index:uint — 数据提供程序中项目的索引。
		 * row:uint — 此项目所在的行。在 List 或 DataGrid 中，该值对应于索引。 在 TileList 中，该值可能与索引不同。
		 * col:uint (default = 0) — 此项目所在的列。在 List 中，该值始终为 0。
		 */
		public function ListData(label:String,
								 icon:Object,
								 owner:UIComponent,
								 index:uint,
								 row:uint,
								 col:uint=0) {
			_label = label;
			_icon = icon;
			_owner = owner;
			_index = index;
			_row = row;
			_column = col;
		}		
		
		/**
         * 要在单元格中显示的标签。
		 */
		public function get label():String
		{
			return _label;
		}
		
		/**
		 * 一个表示 List 组件中项目的图标的类，根据 List 类方法计算得出。
		 */
		public function get icon():Object 
		{
			return _icon;
		}
		/**
         * 对拥有此项目的 List 对象的引用。
		 */
		public function get owner():UIComponent
		{
			return _owner;
		}
		/**
         * 数据提供程序中项目的索引。
		 */
		public function get index():uint 
		{
			return _index;
		}
		/**
         * 数据项目所在的行。
		 */
		public function get row():uint 
		{
			return _row;
		}
		/**
		 * 数据项目所在的列。 在 List 中，该值始终为 0。
		 */
		public function get column():uint
		{
			return _column;
		}		
	}
}

